﻿using System.Collections.Generic;

namespace Goooodbye.Core.SharedKernel
{
    public interface IRepository<E, M, Q>
        where E : Entity
        where M : IModel
        where Q : PagingQuery
    {
        M Select(string id);
        IList<M> Select(Q query);
        int Count(Q query);
        int Insert(E entity);
        int Update(E entity);
        int Delete(string id);
    }
}
